package dipl.visualizer.graphics.shape;

import dipl.algorithm.math.fp.primitive.Point2df;
import dipl.visualizer.graphics.PaintContext;

/// <summary>
/// Interface of a shape which can be painted
/// </summary>
public interface IShape {

	/// <summary>
	/// Gets or sets name of shape
	/// </summary>
	public String Name();

	/// <summary>
	/// paints shape to given paint context
	/// </summary>
	/// <param name="pc">paint context</param>
	public void Paint( PaintContext pc );

	/// <summary>
	/// Returns arbitrary point on shape
	/// </summary>
	/// <returns></returns>
	public Point2df PointOnShape();

}
